#ifndef COMPILE_GRAPHVIZ_H
#define COMPILE_GRAPHVIZ_H

#include <stack>

#include "jtypes.h"
#include "CompileVisitor.h"

class CompileGraphViz : public CompileVisitor
{
  public:
    CompileGraphViz(const char * classname);

    virtual int finalize();

    virtual int compile(AstNodeLiteral *);
    virtual int compile(AstNodeStatementList *);
    virtual int compile(AstNodeLValue*);
    virtual int compile(AstNodeBooleanOperator *);
    virtual int compile(AstNodeAssignment *);
    virtual int compile(AstNodeExpressionVariable *);
    virtual int compile(AstNodeDoubleConstant *);
    virtual int compile(AstNodeBinaryOperator *);
    virtual int compile(AstNodeCompareExpression *);
    virtual int compile(AstNodeForStatement *);
    virtual int compile(AstNodeIfStatement *);
    virtual int compile(AstNodePrintLiteral *);
    virtual int compile(AstNodePrintExpression *);
  private:
    FILE * file;
    bool   doingOnRoot;
};


#endif 
